<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>测试MyPromise的页面</title>
</head>
<body>
	<div>测试MyPromise的页面</div>
</body>
<script src="MyPromise.js"></script>
<script>
	window.onload = function(){
		const mp = new MyPromise(function (resolve, reject) {
      setTimeout(() => {
        resolve(1000);
      }, 1000);

      // setTimeout(() => {
      //   reject(new TypeError("hello world"));
      // }, 2000);
    });

    mp.then(
    	function (value) {
      	console.log(value);
      	return 2000;
   		},
    	function (error) {
      	console.error(error);
    	}
    )
    .then(
      function (value) {
      	console.log(value);
      	throw new Error("ssss");
      	return mp;
      },
      function (error) {
        console.error(error);
      }
    )
    .catch((e) => {
      console.error(e, 1111);
    });

    // MyPromise.resolve(10000).then(console.log);
    
    // MyPromise.resolve(
    //     new MyPromise(function (resolve) {
    //       resolve("100000");
    //     })
    //   ).then(console.log);

    // MyPromise.reject(10).then(undefined, function (error) {
    //  	console.error(error);
    // });

    // MyPromise.reject(
    //   new MyPromise(function (resolve, reject) {
    //     reject("100000");
    //   })
    // ).then(undefined, console.error);

    // mp.then(
    //   function (value) {
    //     console.log(value ** 2);
    //   },
    //   function (error) {
    //     console.error(error);
    //   }
    // );

    // mp.then();

    // console.log(mp);

    // const p1 = new MyPromise(function (resolve, reject) {
    //   resolve("hello world");
    // });

    // const p2 = new MyPromise(function (resolve, reject) {
    //   setTimeout(() => {
    //     resolve("hello world, delay 3s");
    //   }, 3000);
    // });

    // const p3 = "yes";

    // const pr = p2.then((r) => {
    //   console.log(r);
    //   return pr;
    // });

    // pr.then(
    //   (r) => {
    //     console.log(r);
    //   },
    //   (e) => {
    //     console.error(e);
    //   }
    // );

    // MyPromise.any([p1, p2]).then(
    //   (r) => {
    //     console.log(r, "11111");
    //   },
    //   (e) => {
    //     console.error(e);
    //   }
    // );

    // MyPromise.allSettled([p1, p2, p3]).then(
    //   (r) => {
    //     console.log(r, "11111");
    //   },
    //   (e) => {
    //     console.error(e);
    //   }
    // );
	}
</script>
</html>